/**
*  
* @Function 批量核查报告服务 
* @ProjectName credit-data-platform 
* @PackageName com.py.credit.service    
* @FileName BatchReportService.java    
* @Date 2018年10月19日上午10:03:55
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/
package com.py.credit.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.py.credit.common.rest.RestServiceResult;
import com.py.credit.entity.SysUser;
import com.py.framework.core.common.Page;

/**
 * 
 * @Function 批量核查报告服务
 * @ClassName BatchReportService
 * @Date 2018年10月19日 上午10:03:55
 * @Author Min DongXv
 * 
 */
public interface BatchReportService {

	/**
	 *
	 * @Function 分页查询批量核查
	 * @FileName BatchReportService.java
	 * @MethodName getBatchReport
	 * @param columns
	 * @param additionalColumns
	 * @param conditions
	 * @param page
	 * @return
	 * @Date 2018年10月19日 上午10:06:10
	 * @Author Min DongXv
	 *
	 */
	public List<Map<String, Object>> getBatchReport(List<String> columns, String[] additionalColumns, String conditions,
			Page page,Long deptId,Long userId);

	/**
	 *
	 * @Function 更新批量核查
	 * @FileName BatchReportService.java
	 * @MethodName editBatchReport
	 * @param map
	 * @Date 2018年10月19日 上午10:06:10
	 * @Author Min DongXv
	 *
	 */
	public void updateBatchReport(Map<String, Object> map);

	/**
	 * 
	 *
	 * @Function 上传批量核查
	 * @FileName BatchReportService.java
	 * @MethodName uploadBatchReport
	 * @param file
	 *            文件
	 * @param userInfo
	 *            上传用户信息
	 * @param absolutepath
	 *            文件存放路径
	 * @return
	 * @Date 2018年10月19日 上午11:17:26
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<Object> uploadBatchReport(MultipartFile file, SysUser userInfo, String absolutepath,
			String batchId);

	/**
	 * 
	 * @Function 批量核查模板下载
	 * @FileName BatchReportService.java
	 * @MethodName templateDownload
	 * @param response
	 * @return
	 * @Date 2018年10月22日 上午11:50:33
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<Object> templateDownload(HttpServletResponse response);

	/**
	 * 
	 * @Function 生成报告定时任务
	 * @FileName BatchReportService.java
	 * @MethodName createReport
	 * @return
	 * @throws InterruptedException
	 * @throws Exception
	 * @Date 2018年10月23日 上午11:03:58
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<Object> createReport(String absolutepath, String pdfJsPath, String googlePath, String pdfPagePath)
			throws InterruptedException;

	/**
	 * 
	 * @Function 解析批量核查报告
	 * @FileName BatchReportService.java
	 * @MethodName dealFile
	 * @param result
	 *            返回结果集
	 * @param filePath
	 * @return
	 * @throws Exception
	 * @Date 2018年10月22日 下午5:06:49
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<Object> dealFile(String filePath, String batchId);

	/**
	 * 
	 * @Function 批量核查打包下载
	 * @FileName BatchReportService.java
	 * @MethodName zipDownload
	 * @param zipPath
	 *            文件存放路径，绝对地址
	 * @param response
	 * @param zipName
	 *            压缩包名称
	 * @return
	 * @Date 2018年10月23日 下午5:10:20
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<Object> zipDownload(String batchId, String zipPath, HttpServletResponse response, String zipName);

	/**
	 * 
	 * @Function 是否可以生成压缩包
	 * @FileName BatchReportService.java
	 * @MethodName zipCanDownload
	 * @param absolutepath
	 *            文件存放地址
	 * @param batchId
	 *            批次信息
	 * @return
	 * @Date 2018年10月25日 下午2:24:31
	 * @Author Min DongXv
	 *
	 */
	RestServiceResult<String> zipCanDownload(String absolutepath, String batchId, String zipName);
}
